<!DOCTYPE html>
<!-- V171109 -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Release notes for embOS V5.14.0.0 for Cortex-M and IAR compiler V8.x and V9.x</title>
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="pragma" content="no-cache">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
body {
  margin: 0;
  background-color: #4F5157;
  color: #3B3D3F;
  font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
 font-size: 0.9rem  line-height: 1.5;
  min-width: 400px;
}
.header{
  background: #2C5B9C;
  }
.head {
  color: #fff;
  padding: 20px 30px;
}
.head h2 {
  color: #fff;
}
.headh3 li, .head h3 a, .head a {
  color: #fff;
}
.footer {
  color: #4f5157;
  background: #BFC3C6;
  padding: 20px;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
}
.footer h2 {
  color: #bfc3c6;
}
.footer h3 li, .footer h3 a, .footer a {
  color: #000;
}

.divider-global {
  border-top: 2px solid #fff;
  padding: 20px 30px;
}
h1 {
  margin-bottom: 30px;
  text-align: left;
  font-size: 1.5em;
  color: #fff;
  border-bottom: 1px solid #fff;
}
h2 {
  text-align: left;
  font-size: 1.2em;
  color: #002F5C;
  text-decoration: underline;
  display: inline-block;
}
h3 {
  text-align: left;
  font-size: 1.0em;
}
h3 li {
  margin: 10px 0;
}
div.divider-global:nth-of-type(odd) {
  background: #F2F2F2;
}
div.divider-global:nth-of-type(even) {
  background: #F6F6F6;
}
.toolChain Table {
  max-width: 1000px;
}
.toolChain Table th {
  font-weight: 600;
  text-align: left;
  width: 12%;
}
#seggerLogo {
  padding: 20px 30px;
  display: inline-block;
}
.claim {
  font-size: 20px;
  display: inline-block;
  color: #fff;
  line-height: 115px;
  vertical-align: top;
}
 @media screen and (max-width: 600px) {
.claim {
  display: none;
}
}
 @media screen and (min-width: 600px) {
.claim {
  font-size: 200%;
}
}
 @media screen and (min-width: 1024px) {
.claim {
  font-size: 300%;
}
}
</style>
</head>
<body class="en" id="top">
<main class="main-content" id="content" role="main">
  <div class="header">
    <div class="row">
      <div id="seggerLogo"> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="150px" height="75px" viewBox="110 27.5 150 75" style="enable-background:new 110 27.5 150 75;" xml:space="preserve">
        <style type="text/css">

  .st0{fill:#FFFFFF;}
  .st1{fill:#005CA8;}
  .st2{fill:#010000;}

</style>
        <g>
          <g>
            <path class="st0" d="M258,96.1c0,2.6-2,4.7-4.4,4.7H115.9c-2.4,0-4.4-2.1-4.4-4.7V33.7c0-2.6,2-4.7,4.4-4.7h137.7
      c2.4,0,4.4,2.1,4.4,4.7"></path>
            <path class="st2" d="M253.7,102.3H115.9c-3.3,0-5.9-2.8-5.9-6.2V33.7c0-3.5,2.6-6.2,5.9-6.2h137.7c3.3,0,5.9,2.8,5.9,6.2v62.4
      C259.6,99.5,256.9,102.3,253.7,102.3z M115.9,30.6c-1.6,0-2.8,1.4-2.8,3.1v62.4c0,1.7,1.3,3.1,2.8,3.1h137.7
      c1.6,0,2.8-1.4,2.8-3.1V33.7c0-1.7-1.3-3.1-2.8-3.1H115.9z"></path>
          </g>
          <polygon class="st1" points="117.8,52.4 127.1,64.9 117.8,77.3   "></polygon>
          <g>
            <path class="st1" d="M131.6,41.3l15.6,20.3v0.1c0.4,0.5,1,1,1.7,1h99.7c1.2,0,2.2-1.1,2.2-2.3c0-1.2-1-2.3-2.2-2.3H150l-14.9-19.4
      l0,0c-0.4-0.5-1-0.9-1.7-0.9c-1.2,0-2.2,1-2.2,2.2C131.2,40.4,131.4,40.9,131.6,41.3L131.6,41.3z"></path>
            <path class="st1" d="M140.4,66.3c0.3-0.4,0.5-0.9,0.5-1.4c0-0.5-0.2-1-0.5-1.4l-18.6-24.9l0,0c-0.4-0.5-1-0.9-1.7-0.9
      c-1.2,0-2.2,1-2.2,2.2c0,0.5,0.2,1,0.5,1.4l17.6,23.5l-17.7,23.5c-0.3,0.4-0.5,0.9-0.5,1.4c0,1.2,1,2.2,2.2,2.2
      c0.7,0,1.3-0.3,1.7-0.9l0,0L140.4,66.3z"></path>
            <path class="st1" d="M248.7,67.2h-99.8c-0.7,0-1.3,0.4-1.7,1v0.1l-15.6,20.3l0,0c-0.3,0.3-0.5,0.8-0.5,1.3c0,1.2,1,2.2,2.2,2.2
      c0.7,0,1.3-0.3,1.7-0.9v0.1l15-19.4h98.7c1.2,0,2.2-1.1,2.2-2.3S249.9,67.2,248.7,67.2z"></path>
          </g>
          <path class="st2" d="M163,80.7c0,0.4-0.1,0.7-0.4,1c-0.3,0.2-0.7,0.3-1.2,0.3c-0.6,0-1.2-0.3-1.8-1c-0.2-0.2-0.3-0.3-0.3-0.3
    c-0.3-0.3-0.7-0.5-1.2-0.7c-0.5-0.1-1-0.2-1.7-0.2c-0.9,0-1.6,0.2-2.1,0.5c-0.5,0.3-0.7,0.7-0.7,1.3c0,0.7,1,1.3,2.9,1.7
    c0.5,0.1,0.9,0.2,1.1,0.2c1.2,0.2,2.1,0.5,2.7,0.6s1,0.3,1.5,0.5c0.7,0.3,1.2,0.8,1.6,1.3c0.3,0.6,0.5,1.2,0.5,2
    c0,1.4-0.6,2.6-1.8,3.4c-1.2,0.9-2.8,1.3-4.9,1.3c-1.2,0-2.1-0.1-2.9-0.3c-0.8-0.2-1.6-0.5-2.4-1c-0.5-0.3-0.9-0.7-1.2-1.2
    s-0.5-0.9-0.5-1.3c0-0.4,0.1-0.7,0.4-1c0.3-0.3,0.7-0.4,1.2-0.4c0.6,0,1.2,0.3,1.7,1c0.2,0.3,0.3,0.5,0.5,0.6
    c0.3,0.3,0.7,0.6,1.3,0.8c0.5,0.2,1.1,0.2,1.8,0.2c1.1,0,1.9-0.2,2.5-0.5c0.6-0.3,0.9-0.8,0.9-1.4c0-0.9-1.4-1.6-4.3-2.1
    c-0.1,0-0.2-0.1-0.2-0.1c-2.2-0.4-3.7-1-4.5-1.6c-0.8-0.6-1.2-1.6-1.2-2.8c0-1.4,0.6-2.5,1.7-3.2c1.1-0.7,2.8-1.2,4.8-1.2
    c1,0,1.8,0.1,2.6,0.3c0.7,0.2,1.5,0.5,2.1,0.9c0.5,0.3,0.9,0.6,1.2,1C162.8,79.9,163,80.3,163,80.7z"></path>
          <path class="st2" d="M177.8,89.6c0.6,0,1.1,0.1,1.4,0.3c0.3,0.2,0.5,0.6,0.5,1s-0.2,0.7-0.5,1c-0.3,0.2-0.8,0.3-1.4,0.3h-9
    c-0.8,0-1.4-0.2-1.7-0.5c-0.3-0.3-0.5-0.9-0.5-1.8V80c0-0.9,0.1-1.5,0.5-1.8c0.3-0.3,0.9-0.5,1.7-0.5h8.6c0.6,0,1.1,0.1,1.4,0.3
    c0.3,0.2,0.5,0.5,0.5,1c0,0.4-0.2,0.7-0.5,0.9c-0.3,0.2-0.8,0.3-1.4,0.3h-7.2v3.1h6.5c0.6,0,1.1,0.1,1.4,0.3c0.3,0.2,0.5,0.5,0.5,1
    c0,0.4-0.2,0.7-0.5,0.9c-0.3,0.2-0.8,0.3-1.4,0.3h-6.5v3.7L177.8,89.6L177.8,89.6z"></path>
          <path class="st2" d="M194.2,86.9h-2.6c-0.5,0-0.8-0.1-1.1-0.3c-0.3-0.2-0.4-0.5-0.4-0.9c0-0.3,0.1-0.7,0.4-0.9
    c0.3-0.2,0.6-0.3,1.1-0.3h3.8c0.7,0,1.3,0.1,1.6,0.3c0.3,0.2,0.5,0.6,0.5,1v5.6c0,0.5-0.1,0.7-0.3,1c-0.2,0.2-0.5,0.3-0.9,0.3
    c-0.3,0-0.6-0.1-0.9-0.2c-0.2-0.2-0.4-0.4-0.5-0.7l-0.3-1.1c-0.6,0.7-1.4,1.3-2.2,1.6c-0.8,0.3-1.7,0.5-2.8,0.5
    c-2.4,0-4.4-0.7-5.8-2.1c-1.5-1.4-2.2-3.3-2.2-5.6s0.7-4.2,2.2-5.6c1.5-1.4,3.5-2.1,5.9-2.1c0.8,0,1.6,0.1,2.2,0.2
    c0.7,0.1,1.4,0.3,2,0.6c0.9,0.4,1.5,0.8,2,1.3c0.5,0.5,0.7,1,0.7,1.4c0,0.4-0.2,0.7-0.5,1c-0.3,0.3-0.6,0.4-1.1,0.4
    c-0.4,0-0.7-0.1-1-0.2c-0.3-0.1-0.6-0.4-1-0.8c-0.5-0.5-1-0.9-1.4-1.1c-0.5-0.2-1.1-0.3-1.8-0.3c-1.4,0-2.6,0.5-3.4,1.3
    c-0.8,0.9-1.2,2.1-1.2,3.7c0,1.6,0.4,2.8,1.3,3.7c0.9,0.9,2.1,1.3,3.5,1.3c1.2,0,2.1-0.3,2.8-0.9C193.5,88.7,193.9,87.8,194.2,86.9
    z"></path>
          <path class="st2" d="M212.6,86.9H210c-0.5,0-0.8-0.1-1.1-0.3c-0.3-0.2-0.4-0.5-0.4-0.9c0-0.3,0.1-0.7,0.4-0.9
    c0.3-0.2,0.6-0.3,1.1-0.3h3.8c0.7,0,1.3,0.1,1.6,0.3c0.3,0.2,0.5,0.6,0.5,1v5.6c0,0.5-0.1,0.7-0.3,1c-0.2,0.2-0.5,0.3-1,0.3
    c-0.3,0-0.6-0.1-0.9-0.2c-0.2-0.2-0.3-0.4-0.5-0.7l-0.3-1.1c-0.6,0.7-1.4,1.3-2.2,1.6c-0.8,0.3-1.8,0.5-2.9,0.5
    c-2.4,0-4.4-0.7-5.9-2.1c-1.5-1.4-2.2-3.3-2.2-5.6s0.7-4.2,2.2-5.6c1.5-1.4,3.5-2.1,5.9-2.1c0.8,0,1.6,0.1,2.2,0.2
    c0.7,0.1,1.4,0.3,2,0.6c0.9,0.4,1.5,0.8,2,1.3c0.5,0.5,0.7,1,0.7,1.4c0,0.4-0.1,0.7-0.5,1c-0.3,0.3-0.7,0.4-1.1,0.4
    c-0.3,0-0.7-0.1-1-0.2c-0.3-0.1-0.6-0.4-1-0.8c-0.5-0.5-0.9-0.9-1.4-1.1c-0.5-0.2-1.1-0.3-1.8-0.3c-1.4,0-2.6,0.5-3.4,1.3
    c-0.8,0.9-1.2,2.1-1.2,3.7c0,1.6,0.4,2.8,1.3,3.7c0.9,0.9,2,1.3,3.5,1.3c1.1,0,2.1-0.3,2.8-0.9C212,88.7,212.5,87.8,212.6,86.9z"></path>
          <path class="st2" d="M230.5,89.6c0.6,0,1.2,0.1,1.4,0.3c0.3,0.2,0.5,0.6,0.5,1s-0.2,0.7-0.5,1c-0.3,0.2-0.8,0.3-1.4,0.3h-9
    c-0.8,0-1.4-0.2-1.7-0.5c-0.3-0.3-0.5-0.9-0.5-1.8V80c0-0.9,0.2-1.5,0.5-1.8c0.3-0.3,0.9-0.5,1.7-0.5h8.6c0.6,0,1.1,0.1,1.4,0.3
    s0.5,0.5,0.5,1c0,0.4-0.2,0.7-0.5,0.9c-0.3,0.2-0.8,0.3-1.4,0.3h-7.2v3.1h6.6c0.6,0,1.1,0.1,1.4,0.3c0.3,0.2,0.5,0.5,0.5,1
    c0,0.4-0.2,0.7-0.5,0.9c-0.3,0.2-0.8,0.3-1.4,0.3h-6.6v3.7L230.5,89.6L230.5,89.6z"></path>
          <path class="st2" d="M238.4,80.3v3.9h4.1c0.9,0,1.6-0.2,2-0.5c0.4-0.3,0.6-0.8,0.6-1.4c0-0.6-0.2-1.1-0.6-1.4
    c-0.4-0.3-1-0.5-1.8-0.5H238.4L238.4,80.3z M238.4,90.8c0,0.5-0.1,0.9-0.5,1.2c-0.3,0.3-0.7,0.4-1.3,0.4s-1-0.1-1.3-0.4
    c-0.3-0.3-0.5-0.7-0.5-1.2V80c0-0.9,0.2-1.5,0.5-1.8c0.3-0.3,0.9-0.5,1.7-0.5h6.2c1.9,0,3.3,0.3,4.1,1c0.9,0.7,1.4,1.7,1.4,3.1
    c0,0.9-0.2,1.6-0.7,2.2c-0.5,0.6-1.1,1-1.9,1.2c0.6,0.2,1.1,0.5,1.5,0.9c0.3,0.4,0.5,0.9,0.6,1.6c0.1,0.3,0.1,0.6,0.1,1
    c0,0.5,0.1,0.7,0.1,0.9c0.1,0.2,0.1,0.4,0.2,0.7c0.1,0.3,0.1,0.6,0.1,0.7c0,0.4-0.2,0.7-0.5,1c-0.3,0.2-0.7,0.3-1.3,0.3
    c-0.7,0-1.3-0.2-1.6-0.5c-0.3-0.3-0.5-1.3-0.6-2.8c-0.1-1.1-0.3-1.9-0.7-2.2c-0.3-0.3-1-0.4-1.9-0.4h-3.7v4.3H238.4z"></path>
        </g>
        </svg> </div>
      <div class="claim">The Embedded Experts</div>
      <div class="head">
        <div class="container">
          <!-- ****************************************************************** -->
          <!-- Modifiable information starts here                                 -->
          <!-- Don't forget to edit the title tag either                          -->
          <!-- ****************************************************************** -->
          <h1>Release notes for embOS V5.14.0.0 for Cortex-M and IAR compiler V8.x and V9.x</h1>
        </div>
      </div>
    </div>
  </div>
  <!-- ****************************************************************** -->
  <!-- TOOL CHAIN (Compiler) Information                                  -->
  <!-- ****************************************************************** -->
  <div id="toolChain" class="divider-global">
    <div class="container">
      <h2>Tool chain used for build</h2>
      <div>
        <div class="toolChain">
          <table width="100%" border="0" cellspacing="5">
            <tbody>
              <tr>
                <th scope="row">Compiler: </th>
                <td>IAR ANSI C/C++ Compiler V8.22.2.15995/W32 for ARM</td>
              </tr>
              <tr>
                <th scope="row">Assembler: </th>
                <td>IAR Assembler V8.22.2.15995/W32 for ARM</td>
              </tr>
              <tr>
                <th scope="row">Linker: </th>
                <td>IAR ELF Linker V8.22.2.15995/W32 for ARM</td>
              </tr>
              <tr>
                <th scope="row">Librarian: </th>
                <td>IAR Archive Tool V10.2.6.201</td>
              </tr>
              <tr>
                <th scope="row">Workbench: </th>
                <td>IAR Embedded Workbench for ARM 8.22.2.15996</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
  </div>
  <!-- ****************************************************************** -->
  <!-- History                                                            -->
  <!-- ****************************************************************** -->
  <div class="divider-global">
    <div class="container">
      <h2>Version 5.14.0.0 [01. Jun 2021]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V5.14.0.</li>
          <li>Support for ARMv8-M stack limit feature added.</li>
          <li>Board support packages added for:</br>
              Maxim Integrated MAX32570-MNKIT</br>
              ST STM32L562E-DK</br>
              ST STM32F767ZI Nucleo
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 5.10.1.0 [18. Jun 2020]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Support for ARM TrustZone added.</li>
          <li>Update to latest embOS generic sources V5.10.1.</li>
          <li>Board support packages added for:</br>
              NXP MIMXRT1060 EVK</br>
              NXP MIMXRT1064 EVK</br>
              NXP MIMXRT1170 EVK (M4)</br>
              NXP MIMXRT1170 EVK (M7)</br>
              SoMLabs VisionSOM RT CT</br>
              ST STM32F030R8 Nucleo</br>
              ST STM32F769I Eval</br>
              ST STM32G071RB Nucleo</br>
              ST STM32H745I Discovery</br>
              ST STM32L073Z Eval</br>
              ST STM32L4R5ZI Nucleo</br>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 5.06.1 [30. Sep 2019]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>New embOS libraries for Cortex-M23 devices.</li>
          <li>Board support package added for Nordic Semiconductor nRF52810 nRF52-DK</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Modified workaround for Cortex-M7 r0p1 (Erratum 837070, ARM-EPM-064408) to no longer apply by default.<br />
              If embOS libraries for Cortex-M7 including the workaround are desired, a suitable set of additional libraries is provided.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 5.06 [14. May 2019]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V5.06.</li>
          <li>Board support packages added for:</br>
              NXP LPCXpresso55S69</br>
              Microchip SAML11 XPlainedUltra</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 5.02a [25. Jul 2018]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V5.02a.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 5.00a [22. May 2018]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V5.00a.</li>
          <li>Board support packages added for:</br>
              NXP FRDM-KV31F</br>
              NXP MIMXRT1050 EVK</br>
              ST STM32H743ZI Nucleo</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.40 [04. Jan 2018]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.40.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.38 [28. Sep 2017]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.38.</li>
          <li>Board support package for the Silicon Labs (Energy Micro) Giant Gecko Series 1 Starter Kit added.</li>
          <li>Board support package for the Segger Cortex-M Trace Reference Board added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.36 [21. Jul 2017]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.36.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.34.1 [13. Apr 2017]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to IAR Embedded Workbench for ARM V8.11.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.34 [27. Mar 2017]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.34.</li>
          <li>Update to IAR Embedded Workbench for ARM V8.10.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.30 [13. Dec 2016]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.30.</li>
          <li>Board support package for the NordicSemi nRF52 Preview Development Kit added.</li>
          <li>Board support package for the TI MSP432P401R LaunchPad Development Kit added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.26.1 [17. Nov 2016]</h2>
      <div>
        <h3>Improvements</h3>
        <ol>
          <li>Ensured suitability of SEGGER SystemView and SEGGER HardFault Handler for C++ compilers.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.26 [27. Oct 2016]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.26.</li>
          <li>Board support package for the NXP LPC1549 Xpresso v2 eval board added.</li>
          <li>Board support package for the SiliconLabs EZR32 Leopard Gecko added.</li>
          <li>Board support package for the STMicro STM32F767 added.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Modified workaround for Cortex-M7 r0p1 (Erratum 837070, ARM-EPM-064408) to be user-configurable at compile time.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Corrected automatic state preservation during OS_Idle() with Cortex M4F/M7.<br>
            Under certain circumstances, automatic state preservation and restoration could erroneously be enabled during OS_Idle().
            The problem existed in version 4.22 of embOS for Cortex-M and IAR and is fixed with version 4.26.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.22 [31. May 2016]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.22.</li>
          <li>VFP register handling is now automatically performed by embOS.<br>
            embOS API functions OS_ExtendTaskContext_VFP(), OS_VFP_Save(), OS_VFP_Restore(), and OS_ExtendTaskContext_TLS_VFP() are deprecated.<br>
            Compatibility with older embOS versions is ensured through macro definitions.
          </li>
          <li>Board support package for the Atmel SAM4E-EK eval board added.</li>
          <li>Board support package for the STMicro STM32L152C Discovery board added.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Additional debug check added to detect tasks that end without termination.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Applied workaround for interrupt handling with Cortex-M7 r0p1.<br>
            Erratum 837070, ARM-EPM-064408: Increasing priority using a write to BASEPRI does not take effect immediately. An appropriate workaround was applied.<br>
            The problem, which is exclusive for Cortex-M7 r0p1, existed on all previous versions of embOS for Cortex-M and IAR and is fixed with version 4.22.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.16 [24. Mar 2016]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.16.</li>
          <li>Board support package for the NXP (Freescale) FRDM_K22F board added.</li>
          <li>Board support package for the Olimex STM32-P407 evalboard added.</li>
          <li>Board support package for the Segger emPower evalboard added.</li>
          <li>Board support package for the STMicro STM32L476 Discovery board added.</li>
          <li>Board support package for the TI TMS470M Development Kit added.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Further improved Hardfault Handler for all projects.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Big-endian libraries fixed.<br>
            Big-endian libraries contained little-endian code by mistake.<br>
            The problem existed on all previous versions of embOS for Cortex-M and IAR and is fixed with version 4.16.
          </li>
          <li>Task switch fixed.<br>
            The task switch fix introduced in V4.04a2 could fail under unlikely circumstances on Cortex-M3/M4 targets.<br>
            A task which was suspended by a cooperative task switch was not activated at once, but with the next system tick at the latest.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.14 [22. Dec 2015]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.14.</li>
          <li>Added Segger Real-Time Transfer (RTT) to all projects.<br>
            Additional information on Segger RTT is available at <a href ="https://www.segger.com/products/debug-probes/j-link/technology/real-time-transfer/about-real-time-transfer/">www.segger.com</a>.
          </li>
          <li>Added Segger SystemView to all projects.<br>
            The Segger SystemView User Guide is available at <a href ="https://www.segger.com/systemview.html">www.segger.com</a>.
          </li>
          <li>Board support package for the Freescale Kinetis K26 added.</li>
          <li>Board support package for the STMicro STM32F746G Discovery board added.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Improved HardFault Handler added to all projects.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.12a [17. Sep 2015]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.12a.</li>
          <li>Board support package for the STMicro STM32F401xC Discovery board added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.10 [04. May 2015]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.10.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.06b [31. Mar 2015]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.06b.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.06a [18. Mar 2015]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.06a.</li>
          <li>Board support package for the Freescale TWR-VF6 added.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>OS_EnterRegion() fixed.<br>
            Under specific circumstances IAR could remove OS_EnterRegion() when compiling with high optimization.<br>
            This could cause that the preemptive task switch was not disabled even when OS_EnterRegion() was called.<br>
            The problem existed on all previous versions of embOS for Cortex-M and IAR and is fixed with version 4.06a.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.04a2 [04. Mar 2015]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Board support package for the Atmel SAMV71 XPlainedUltra added.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Task switch fixed.<br>
            A problem with the task switch could cause that a task was not activated at once when it was triggered by an interrupt.<br>
            The problem existed on all previous versions of embOS for Cortex-M and IAR and is fixed with version 4.04a2.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.04a1 [03. Feb 2015]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Board support package for the STMicro STM32F756G-Eval board added.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>embOS libraries fixed.<br>
            The embOS libraries were built with a 256 kByte code size limitation by mistake.<br>
            The problem existed since V4.04a of embOS for Cortex-M and IAR and is fixed with version 4.04a1.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.04a [09. Jan 2015]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.04a.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.02a [18. Sep 2014]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.02a.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.02.1 [15. Sep 2014]</h2>
      <div>
        <h3>Program corrections</h3>
        <ol>
          <li>OS_LeaveNestableInterrupt() fixed.<br>
            A problem with OS_LeaveNestableInterrupt() could cause that a task switch was not executed when triggered
            by an interrupt routine which interrupted another interrupt routine.<br>
            The problem existed on all previous versions of embOS for Cortex-M and IAR and is fixed with version 4.02.1.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.02 [19. Aug 2014]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.02.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 4.00 [13. Jun 2014]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V4.00.</li>
          <li>Board support package for the STMicro STM32F072 added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.90.1 [24. Mar 2014]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Board support package for the Atmel SAMG53 added.</li>
          <li>Board support package for the Atmel SAMG54 added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.90 [19. Jan 2014]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.90.</li>
          <li>Start projects and assembly files updated for IAR Embedded Workbench for ARM V7.10.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.88g2 [12. Jan 2014]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Board support package for the STMicro LIS331 added.</li>
          <li>Board support package for the TI TM4C129 added.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Start projects for Cortex-M0 devices corrected.<br>
          The start projects for Cortex M0 devices had code for variable vector tables and programming the VTOR register implemented.<br>
          Cortex M0 devices don't support a variable vector table, the vector table has to be located at address 0x0.<br>
          Code for programming the VTOR register is removed from the RTOSInit files now.<br>
          This correction affects the start projects for the following CPUs:<br>
          Freescale KL25<br>
          Infineon UMF51x<br>
          NXP LPC 1000<br>
          NXP LPC 122x<br>
          ST STM32F05<br>
          The problem existed on all previous versions of embOS for Cortex-M and IAR and is fixed with version 3.88g2.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.88g1 [17. Dec 2013]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Board support package for the IAR STM32F429_SK board added.</li>
          <li>Board support package for the STMicro STM32F429 discovery board added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.88g [05. Nov 2013]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.88g.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.88c [13. Aug 2013]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.88c.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>OS_Start() fixed.<br>
            A problem with OS_Start() could cause that embOS did not start.<br>
            The problem existed on all previous versions of embOS Cortex M IAR and is fixed with version 3.88c.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.88b [29. May 2013]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.88b.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Scheduling fixed.<br>
            A problem with the scheduler could cause that a task not in ready state was not suspended and continued running.<br>
            Higher priority tasks were blocked even when they were ready to execute.<br>
            The problem existed on all previous versions of embOS Cortex M IAR and is fixed with version 3.88b.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.86n [10. Dec 2012]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.86n.</li>
          <li>Thread safe system library support with compiler 6.4 or newer described.<br>
            Activation of thread safe system library support with IAR compiler 6.4 or newer requires additional linker options which are now described in the compiler and CPU specific manual.
          </li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Thread safe system locking functions modified.<br>
            A problem was reported which occurred when the application was ended without starting embOS.<br>
            When thread safe system locks were initialized during main(), the destroy function of the system locks might have crashed when the application run to exit without starting embOS before.<br>
            The modified destroy function of the embOS syslocks now is not called when embOS was not started before, because there is nor need to destroy the syslocks in this case.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.86l [26. Nov 2012]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.86l.</li>
          <li>Board support package for the Atmel AT91SAM3X-EK added.</li>
          <li>Board support package for the Freescale TWR-KL25 added.</li>
          <li>Board support package for the IAR STM32F051R8-SK evalboard added.</li>
          <li>Board support package for the Infineon XMC4500 Hexagon Application Kit added.</li>
          <li>Board support package for the Infineon XMC4500 Relax Lite Kit added.</li>
          <li>Board support package for the Keil MCB4357 evalboard (NXP LPC4357) added.</li>
          <li>Board support package for the NXP LPC4088 Embedded Artists evalboard added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.86g [06. Aug 2012]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.86g.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Nested interrupt handling improved.<br>
            Unnecessary enabling and disabling of interrupts removed from OS_EnterNestableInterrupt() and OS_LeaveNestableInterrupt().<br>
            Thus, interrupt handling of nested interrupts runs faster.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.86f [26. Jul 2012]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.86f.</li>
          <li>Task events are 32bits wide<br>
            With embOS version 3.86f, the task events for 32bit CPUs are 32bit wide now, allowing more individual events sent to tasks.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.86e [08. Jun 2012]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.86e.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Modified HardFault handler<br>
            The HardFault handler was modified and is now included in the RTOSInit files.<br>
            When semihosting for terminal outputs is activated in the project settings, printf outputs are controlled by break instructions in the code.<br>
            If the CPU is started in normal mode without debugger, the break instruction will force a HardFault exception.<br>
            The new HardFault handler in RTOSInit detects this state, resets the HardFault condition and continues execution of the application.<br>
            The previuos implementation did not handle the HardFault correctly. The application or the calling task ran in an endless loop.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.86d [10. May 2012]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.86d.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>OS_EnterNestableInterrupt() improved<br>
            A needless call of enable interrupt function removed. Execution speed improved.
          </li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>OS_ExtendTaskContext_TLS_VFP() corrected.<br>
            The previous version of this function did not work correctly.<br>
            Saving the task context desroyed the task stack.<br>
            The problem existed on all previous versions of embOS for Cortex M4F and is fixed with version 3.86d of embOS.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.84d [30. Apr 2012]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.84d.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.84c1 [03. Feb 2012]</h2>
      <div>
        <h3>Program corrections</h3>
        <ol>
          <li>Scheduling for Cortex M4 with VFP corrected.<br>
            The previous versions of embOS for Cortex M4 with VFP crashed when the VFP was activated and used by multiple tasks.<br>
            Initialization for VFP and scheduling was modified to fix the problem.<br>
            The problem existed on Cortex M4 applications with activated VFP only and is fixed with version 3.84c1 of embOS.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.84c [18. Jan 2012]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.84c.</li>
          <li>Board support package for the Hitex NXP LPC1850 eval board added.</li>
          <li>Board support package for the IAR Fujitsu MB9BF618T SK eval board added.</li>
          <li>Board support package for the Freescale Tower K70 eval board added.</li>
          <li>Board support package for the Toshiba Topas TMPM369 eval board added.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>OS_Start() corrected.<br>
            A hard fault exception could occur when an interrupt is executed after OS_Start() and before the scheduler runs for the first time.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.84.1 [04. Nov 2011]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>embOS plugin for CSpy supports Cortex M4F<br>
            The new embOS IAR plugin version 6.0.6.7 delivered with embOS V3.84.1 now supports task sensitive call stack for Cortex M4 CPUs with floating point unit.<br>
            Previous versions of the plugin can be used, but did not show the task sensitive call stack.
          </li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Fully interruptible stack layout for OS_Idle()<br>
            The embOS stack management for Cortex M now uses the main stack as stack for OS_Idle which allows fully interruptible usage of the stack in OS_Idle().
            The previous versions of embOS for Cortex M did not allow usage of the stack in OS_Idle().
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.84 [27. Oct 2011]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.84.</li>
          <li>Support for Cortex M4F with floating point unit added.</li>
          <li>Board support package for the Energy Micro EFM32-GG990-DK eval board added.</li>
          <li>Board support package for the IAR STM32F207-SK eval board added.</li>
          <li>Board support package for the NXP LPC1788_EA eval board added.</li>
          <li>Board support package for the NXP LPC1788_uEZGUI eval board added.</li>
          <li>Board support package for the NXP LPC1788-SK eval board added.</li>
          <li>Board support package for the STMicro STM32F457IG-Discovery eval board added.</li>
          <li>Board support package for the STMicro STM32F457IG-Eval eval board added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82u [05. Jul 2011]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.82u.</li>
          <li>Board support package for the IAR STM32L152VB-SK eval board added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82s [23. Mar 2011]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.82s.</li>
          <li>New library mode (DPL: debug and profiling with low optimization) added.</li>
          <li>Board support package for the Fujitsu MB9BF506 SK FM3 100PMC evalboard added.</li>
          <li>Board support packages for various EFM32 devices added.</li>
          <li>Board support packages for various STM32 devices added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82m [24. Nov 2010]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.82m.</li>
          <li>Support for Cortex-M4 added.</li>
          <li>Support for embOSView via J-Link for Cortex-M0 added.</li>
          <li>Board support packages for various Freescale Kinetis devices added.</li>
          <li>Board support packages for various EnergyMicro devices added.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Queue management corrected.<br>
            Queue management failed when the Q-buffer was filled up to the end. This might have happened, when messages are produced faster then they were consumed.<br>
            The OS_Q_Purge() and OS_Q_Put() functions did not handle this case correctly and caused the queue to be corrupted.<br>
            OS_Error() might have been called with error number 143, or OS_Q_GetPtr() might have returned with a wrong message size or a message zize of 0.<br>
            The problem existed since version 3.82k of embOS and is fixed with version 3.82m.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82l [25. Oct 2010]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.82l.</li>
          <li>Update to IAR Embedded Workbench for ARM V6.x.</li>
          <li>Thread local storage supported.<br>
            embOS for Cortex-M and IAR compiler now supports the thread local storage implementation of the new IAR dlib V6.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82h1 [21. Jul 2010]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>embOS Cortex-M3 and embOS Cortex-M0 are merged to embOS Cortex-M.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82h [31. May 2010]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.82h.</li>
          <li>Profiling with embOSView via J-Link<br>
            All embOS start projects and the embOS libraries were modified to allow communication with embOSView via J-Link.<br>
            The new embOSView version 3.82g allows selection of a communication to a Cortex M3 using J-Link with JTAG or SWD interface.<br>
            The communication to embOSView starts after the call of OS_Start() and can be used in parallel with a debugging session which uses J-Link as debugging probe.
          </li>
          <li>Fully CMSIS compliant projects<br>
            All start projects of embOS for Cortex-M3 are now fully CMSIS compliant.<br>
            The projects come with new startup code and vector tables which are fully CMSIS compliant.<br>
            When CMSIS shall be used for the application, the chip specific CMSIS startup code and vector tables can be used.<br>
            CMSIS libraries of the chip vendor are not required to run embOS, embOS can be used as is.<br>
          </li>
          <li>Generic project for arbitrary Cortex-M devices using CMSIS added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82e2 [10. Feb 2010]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>CMSIS compliant scheduler call implemented<br>
            The embOS scheduler function was renamed to be fully CMSIS compliant.<br>
            Target CPU specific CMSIS libraries may be used together with embOS now.<br>
            There is no need to modify the vector tables which come with the CMSIS libraries.
          </li>
          <li>Board support package for the ATMEL AT91SAM3S added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82e1 [09. Jan 2010]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Projects for LPC176x updated.<br>
            The debugger configuration settings of previous versions caused some trouble when the target should be accessed with J-Link.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82e [28. Jan 2010]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.82e.</li>
          <li>CMSIS compliant board support package for the STM32/MB672.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.82c [10. Dec 2009]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.82c.</li>
          <li>Profiling support added to STM32 MB784 board support package.</li>
          <li>Board support package for the Toshiba TMPM330 added.</li>
          <li>All projects have now remarks enabled.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.80h [06. Aug 2009]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.80h.</li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>BSP for AT91SAM3U corrected.<br>
            The previous versions of the initialization code for the AT91SAM3U did not initialize the second Flash memory controller for devices with 256KB Flash.<br>
            This resulted in Flash read errors when the Flash memory in the second Flash bank was accessed.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.80g3 [14. Jul 2009]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Project for AT91SAM3U runs with IAR flashloader<br>
            The embOS start project for the AT91SAM3U CPU was modified to run with the Flasherloader which comes with the latest IAR workbench (EW-ARM 5.40.<br>
            The flashloader can be used with any J-link version, but the project requires version 5.40 or later of the IAR workbench.<br>
            EW-ARM 5.40 is the first version that supports the AT91SAM3U.
          </li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Systick timer initialization corrected<br>
            The previous version V3.80g2 of embOS for Cortex-M3 still affected the SYSTICK timer settings during a call of OS_InitKern().<br>
            The Systick timer was disabled.<br>
            Now the systick timer initialization is completely done during OS_InitHW() and can therefore be modified if required by the application.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.80g2 [09. Jul 2009]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Board support package for the IAR LPC1766-SK added.</li>
          <li>Board support package for the STMicro STM32F107 added.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Systick timer initialization modified<br>
            The SYSTICK timer is normally used as system timer for embOS. Previous versions of embOS for Cortex-M3 initialized the interrupt priority during the system initialization called from OS_InitKern().<br>
            Now the systick timer initialization is completely done during OS_InitHW() and can therefore be modified if required by the application.<br>
            By modification of OS_InitHW(), any peripheral timer may be used as system timer for embOS, leaving the systick timer untouched.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.80g1 [09. Jul 2009]</h2>
      <div>
        <h3>Improvements</h3>
        <ol>
          <li>Code modified to avoid warnings<br>
            Some compile time switches were not predefined in some projects and therefore produced a warning when remarks were enabled.<br>
            This did not cause any problem, but might have been confusing.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.80g [05. Jun 2009]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.80g.</li>
          <li>Scheduling optimized<br>
            Update to new embOS version 3.80 with optimized internal data structures to speed up scheduling and task switches.<br>
            The new embOS version requires the C-Spy plugin V3.80 or later. The plugin comes with embOS.
          </li>
          <li>New embOS plugin with task sensitivity<br>
            embOS version 3.80g for Cortex M3 now comes with the new embOS IAR plugin V3.80.1 for C-Spy which supports task sensitivity for Cortex M3.<br>
            Task sensitivity is supported since embOS version 3.62c.<br>
            Previous versions of embOS for Cortex M3 can be used with the new plugin, but do not support the task sensitivity.
          </li>
          <li>Board support package for the ATMEL AT91SAM3U added.</li>
          <li>Board support package for the NXP LPC176x added.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.62 [01. Oct 2008]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.62.</li>
          <li>Update to IAR Embedded Workbench for ARM V5.20.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.60d [05. Jun 2008]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.60d.</li>
          <li>OS_POWER module implemented.<br>
            The OS_POWER module may be used to control different power saving modes when entering idle state.<br>
            Individual flags for different peripherals may be set whenever a peripheral needs power or clock, and may be reset, when power is not needed.<br>
            The state of the power flags may be examined during OS_Idle by a call of OS_POWER_GetMask().<br>
            This allows to switch off all of those peripherals which are not needed during idle times.
          </li>
          <li>Board support package for the STMicro MB525 Eval board added.</li>
          <li>Board support package for the STMicro MB672 Eval board added.</li>
          <li>Board support package for the IAR STM-SK Eval board renamed to STM32F103_STM_SK.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.60a [12. Mar 2008]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.60a.</li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.60 [11. Jan 2008]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.60.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>IAR Embedded Workbench for ARM V5.11 compatibility<br>
            embOS for CM3 for IAR V511 is now compatible with IAR Embedded Workbench for ARM V5.11.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.52e1 [21. Dec 2007]</h2>
      <div>
        <h3>Program corrections</h3>
        <ol>
          <li>OS_TaskEx corrected<br>
            Parameter passing to OS_TaskEx did not work. A task always received a NULL pointer.
            The problem existed in all previous embOS versions for CM3 and is fixed with version 3.52e1.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.52e [29. Nov 2007]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.52e.</li>
          <li>OS_SetTaskName() introduced<br>
            OS_SetTaskName() allows modification of task names on the fly.<br>
            This may be useful if the functionality of a task changes during runtime and the new state should be shown using embOSView or an other task visualisation tool.
          </li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>All embOS variables located in one module.<br>
            All embOS variables are located in one module now. In previous versions of embOS, some module specific embOS variables were located in the module they were used for.
          </li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>Interrupt table in RAM corrected<br>
            Variable interrupt table in RAM did not work correct.
          </li>
          <li>OS_SendString() corrected.<br>
            When sending an empty string, the calling task was suspended forever.<br>
            The problem existed in all previous embOS versions and is fixed with version 3.52e.
          </li>
          <li>embOSView corrected.<br>
            When the update interval of embOSView was set to 200ms or a longer value, the reaction of user input or mouse events was blocked for the same time.<br>
            The problem existed since version 3.32 of embOSView and is fixed with version 3.52e.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.52a [17. Sep 2007]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.52a.</li>
          <li>Task switch time can be measured by application<br>
            embOS now comes with sample applications which allow accurate measurement of task switch time in a running application.<br>
          </li>
          <li>Board support package for the Luminary Micro LM3S1968 added.</li>
          <li>Board support package for the Luminary Micro LM3S8962 added.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Scheduler optimized<br>
            The embOS scheduler was optimized to reduce task switching time and interrupt latencies.<br>
          </li>
          <li>OS_Yield() now writes an entry into the trace buffer<br>
            When using the debug library with trace capabilities, OS_Yield() writes an entry into the trace buffer which shows the function call and the calling task.<br>
            embOSView version 3.40d is required to show this entry.
          </li>
          <li>Task switch to OS_Idle() modified.<br>
            The call of OS_Idle() from OS_ChangeTask can be overwritten (inhibited) by defining the macro OS_IDLE() which is normally defined as OS_Idle().<br>
            This allows task switching via an exception for specific CPU/compiler versions.
          </li>
          <li>Pointer comparison improved for fixed size memory pools (OS_MEMF module).<br>
            Some compiler produced wrong pointer comparison code in far memory model.<br>
            For specific CPU/compiler versions, the new OS_POINTER_TO_VALUE() function was introduced to deliver correct results in pointer comparison.
          </li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>OS_Suspend() corrected<br>
            When using the debug library with trace capabilities, a call of OS_Suspend() wrote a wrong trace code into the trace buffer.<br>
            Instead of writing the code for task suspension, the code for task termination was written.<br>
            The function itself worked correctly, only the data written into the trace buffer was wrong.<br>
            The problem existed in all previous embOS versions and is fixed with version 3.40d.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.40c [28. Jun 2007]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.40c.</li>
          <li>OS_Yield() may suspend a task unconditionally<br>
            When tasks are running on round robin with timeslice, the function OS_Yield() can be used to end the timeslice of the running task immediately and activate an other task with the same priority which is ready for execution.
            The function has no effect on tasks that are not running on round robin.
          </li>
          <li>UART and PLL added<br>
            Uart and PLL initialization to BSP added.
          </li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Queue management improved.<br>
            For some CPUs, the buffer start address for Queues has to be aligned.
            Now embOS automatically corrects the alignment, if required.
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.40a [05. Jun 2007]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.40a.</li>
          <li>Board support package for the STMicro STM32F10 added.</li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Counting semaphores improved.<br>
            Counting semaphores are now int values and an overflow will be caught, so that embOS runs into OS_Error().
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.40 [24. May 2007]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.40.</li>
          <li>Automatic call of OS_INIT_SYS_LOCKS() removed.<br>
            During initialization of embOS, OS_INIT_SYS_LOCK() is not called automatically.<br>
            As most of the applications do not need thread safe system libraries, an automatic activation of syslocks causes unwanted overhead.<br>
            If supported and required, the user may call OS_INIT_SYS_LOCKS() from his own application after normal initialization of embOS.<br>
          </li>
          <li>OS_TimerEx, Extended timer implemented<br>
            Extended timers are software timers which call a user defined callback function when the timer expires.<br>
            In comparison to normal embOS timers, a parameter is passed to the timer callback function.<br>
            The parameter value is initialized during timer creation.
          </li>
        </ol>
        <h3>Improvements</h3>
        <ol>
          <li>Task switch time improved.<br>
            Scheduling optimized to improve task switch time.
          </li>
          <li>Task switch time improved for task events.<br>
            Task event handling modified to improve task switch time for tasks waiting on events.
          </li>
          <li>Interrupt latency improved.<br>
            During task switch, the time period when interrupts are disabled is reduced.
          </li>
          <li>embOS timer tick handler improved.<br>
            The standard timer tick handler run faster now. The embOS internal time variable is incremented by 1 on every timer tick.<br>
            When different increments are required, the new timer tick handler OS_HandleTick_Ex(), OS_TickHandler_Ex() or OS_HandleTickDI_Ex() have to be used by application.<br>
            Different increments may be configured by a call of OS_CONFIG().
          </li>
        </ol>
        <h3>Program corrections</h3>
        <ol>
          <li>OS_Unuse() corrected<br>
            OS_Unuse() must not be called from a task that does not claim the resource semaphore.<br>
            According to the documentation, the debug build of embOS should generate a call to OS_Error() if this fault happens.<br>
            All previous versions of embOS did not call OS_Error().
            Now, OS_Error() will be called in that situation with error code 156: OS_ERR_RESOURCE_OWNER().
          </li>
          <li>OS_EVENT_Delete() corrected<br>
            OS_EVENT_Delete() did not work correctly. OS_LeaveRegion() was called inside the function without calling OS_EnterRegion() bfore.<br>
            In debug builds of embOS, the error handler OS_Error() was called with error 151 (OS_ERR_LEAVEREGION_BEFORE_ENTERREGION).<br>
            In release builds the system was blocked because the underflow of region count inhibits all further task switches, or system crashes, because incrementing the region count the next time allows task switches instead of blocking them.
            The problem existed in all previous versions and is fixed with version 3.32l.
          </li>
          <li>Round-robin task switching corrected.<br>
            Round robin task switching did not work correctly in previous version. A task which was blocked for some reason could be activated. The system crashed during task switch.<br>
            The problem existed since version 3.32j and is fixed with version 3.32l.
          </li>
          <li>Handler function _OS_OnTx() for serial communication to embOSView corrected.<br>
            The transmission handler for communication with embOSView might have sent incorrect data to embOSView, because internal control state was updated after sending the data.<br>
            The problem occurred on a new embOS port for a specific CPU only and is fixed with version 3.32k.<br>
          </li>
        </ol>
      </div>
    </div>
  </div>
  <div class="divider-global">
    <div class="container">
      <h2>Version 3.32j [06. Jan 2007]</h2>
      <div>
        <h3>New Features</h3>
        <ol>
          <li>Update to latest embOS generic sources V3.32j.</li>
        </ol>
      </div>
    </div>
  </div>

  <!-- ****************************************************************** -->
  <!-- Modifiable information ends here                                   -->
  <!-- Don't forget to edit the "Copyright" year if necessary and         -->
  <!-- >>>>>if a SUPPORT E-MAIL is required change the info@segger.com<<<<<<  -->
  <!-- ****************************************************************** -->

</main>
<div class="footer">
  <div class="container">
    <div>
      <p>Copyright 2001-2021 SEGGER Microcontroller GmbH. All rights reserved.<br>
        For more information, please visit our website&nbsp;<a href="https://www.segger.com/" target="_blank">www.segger.com</a>&nbsp;or contact us at&nbsp;<a href="mailto:support_embos@segger.com">support_embos@segger.com</a>&nbsp;</p>
    </div>
  </div>
</div>
</body>
</html>